package com.ruoyi.training.mapper;

import java.util.List;
import com.ruoyi.training.domain.Records;
import org.apache.ibatis.annotations.Param;

/**
 * 档案Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-18
 */
public interface RecordsMapper 
{
    /**
     * 查询档案
     * 
     * @param recordId 档案主键
     * @return 档案
     */
    public Records selectRecordsByRecordId(String recordId);

    /**
     * 查询档案列表
     * 
     * @param records 档案
     * @return 档案集合
     */
    public List<Records> selectRecordsList(Records records);

    /**
     * 新增档案
     * 
     * @param records 档案
     * @return 结果
     */
    public int insertRecords(Records records);

    /**
     * 修改档案
     * 
     * @param records 档案
     * @return 结果
     */
    public int updateRecords(Records records);

    /**
     * 删除档案
     * 
     * @param recordId 档案主键
     * @return 结果
     */
    public int deleteRecordsByRecordId(String recordId);

    /**
     * 批量删除档案
     * 
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRecordsByRecordIds(String[] recordIds);

    /**
     *通过报名id获取档案list
     * lqx
     * */
    public List<Records> selectRecordsByRegistrationId(@Param("registrationId") String registrationId);

    /**
     * 批量插入档案记录
     * @param records 档案记录列表
     * @return 插入数量
     */
    public int batchInsert(@Param("records") List<Records> records);

    /**
     * 根据报名ID和文件类型列表逻辑删除记录
     * @param registrationId 报名ID
     * @param types 文件类型列表
     * @return 删除数量
     */
    int logicDeleteByRegistrationIdAndTypes(
            @Param("registrationId") String registrationId,
            @Param("types") List<String> types,
            @Param("updateBy") String updateBy
    );
}
